/*
 * File:   Territorio.h
 * Author: jimena2
 *
 * Created on 28 de mayo de 2011, 12:45 PM
 */

#ifndef TERRITORIO_H
#define	TERRITORIO_H
#include "../headers/TipoUnidad.h"
#include "../headers/Unidad.h"
#include "../dataTypes/dataResultado.h"
#include "../interfacesCol/ICollectible.h"
#include "../dataTypes/dataTerritorio.h"
#include "../interfacesCol/IDictionary.h"
#include <string.h>

class Territorio: public ICollectible {
private:
   char* nombre;
   IDictionary* unidades;//set(unidades)
   IDictionary* adyacentes;//set(unidades)

public:
    Territorio();
    Territorio(char*);
    Territorio(const Territorio& orig);
    char* getNombre();
    IDictionary* getUnidades();
    IDictionary* getAdyacentes();
    void agregarAdyacentes(Territorio*);
    dataTerritorio* obtenerDataTerritorio();
    void agregarUnidad(Unidad*);
    void agregarTipoUnidad(char*);
    void removerAdyacentes();
    void crearUnidadEnTerritorio(TipoUnidad*);
    dataResultado* resultadoCombate(Unidad*);
    bool esVaciaColeccionU();
    Unidad* obtenerU(char*);
    virtual ~Territorio();
private:

};

#endif	/* TERRITORIO_H */
